<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head>
<meta http-equiv="X-UA-Compatible" content="IE=7"></meta>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"></meta>
<title>Recommended Apache configurations</title><meta name="generator" content="DocBook XSL Stylesheets V1.77.1"></meta><link rel="home" href="index.html" title="README: Web-based Help from DocBook XML"></link><link rel="up" href="ch02s02.html" title="Using and customizing the output"></link><link rel="prev" href="ch02s02.html" title="Using and customizing the output"></link><link rel="next" href="ch02s03.html" title="Search indexing"></link><script type="text/javascript">
            //The id for tree cookie
            var treeCookieId = "treeview-1055";
            var language = "en";
            var w = new Object();
            //Localization
            txt_filesfound = 'Results';
            txt_enter_at_least_1_char = "You must enter at least one character.";
            txt_browser_not_supported = "JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site.";
            txt_please_wait = "Please wait. Search in progress...";
            txt_results_for = "Results for: ";
        </script><link rel="shortcut icon" href="../favicon.ico" type="image/x-icon"></link><link rel="stylesheet" type="text/css" href="../common/css/positioning.css"></link><link rel="stylesheet" type="text/css" href="../common/jquery/theme-redmond/jquery-ui-1.8.2.custom.css"></link><link rel="stylesheet" type="text/css" href="../common/jquery/treeview/jquery.treeview.css"></link><style type="text/css">
noscript{
      font-weight:bold;
}
input {
    margin-bottom: 5px;
    margin-top: 2px;
}
.folder {
    display: block;
    height: 22px;
    padding-left: 20px;
    background: transparent url(../common/jquery/treeview/images/folder.gif) 0 0px no-repeat;
}
span.contentsTab {
    padding-left: 20px;
    background: url(../common/images/toc-icon.png) no-repeat 0 center;
}
span.searchTab {
    padding-left: 20px;
    background: url(../common/images/search-icon.png) no-repeat 0 center;
}

/* Overide jquery treeview's defaults for ul. */
.treeview ul {
    background-color: transparent;
    margin-top: 4px;
}		
#webhelp-currentid {
    background-color: #D8D8D8 !important;
}
.treeview .hover { color: black; }
.filetree li span a { text-decoration: none; font-size: 12px; color: #517291; }

/* Override jquery-ui's default css customizations. These are supposed to take precedence over those.*/
.ui-widget-content {
    border: 0px; 
    background: none; 
    color: none;     
}
.ui-widget-header {
    color: #e9e8e9;
    border-left: 1px solid #e5e5e5;
    border-right: 1px solid #e5e5e5;
    border-bottom: 1px solid #bbc4c5;
    border-top: 4px solid #e5e5e5;
    border: medium none;
    background: #F4F4F4; /* old browsers */
    background: -moz-linear-gradient(top, #F4F4F4 0%, #E6E4E5 100%); /* firefox */
    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#F4F4F4), color-stop(100%,#E6E4E5)); /* webkit */    
    font-weight: none;
}
.ui-widget-header a { color: none; }
.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { 
border: none; background: none; font-weight: none; color: none; }
.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: black; text-decoration: none; }
.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: none; background: none; font-weight: none; color: none; }

.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: none; background: none; font-weight: none; color: none; }
.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { 
    color: black; text-decoration: none; 	
    background: #C6C6C6; /* old browsers */
    background: -moz-linear-gradient(top, #C6C6C6 0%, #D8D8D8 100%); /* firefox */
    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#C6C6C6), color-stop(100%,#D8D8D8)); /* webkit */
    -webkit-border-radius:15px; -moz-border-radius:10px;
    border: 1px solid #f1f1f1;
}    
.ui-corner-all { border-radius: 0 0 0 0; }

.ui-tabs { padding: .2em;}
.ui-tabs .ui-tabs-nav li { top: 0px; margin: -2px 0 1px; text-transform: uppercase; font-size: 10.5px;}
.ui-tabs .ui-tabs-nav li a { padding: .25em 2em .25em 1em; margin: .5em; text-shadow: 0 1px 0 rgba(255,255,255,.5); }
        </style><script type="text/javascript" src="../common/browserDetect.js"></script><script type="text/javascript" src="../common/jquery/jquery-1.4.2.min.js"></script><script type="text/javascript" src="../common/jquery/jquery-ui-1.8.2.custom.min.js"></script><script type="text/javascript" src="../common/jquery/jquery.cookie.js"></script><script type="text/javascript" src="../common/jquery/treeview/jquery.treeview.min.js"></script><script type="text/javascript" src="search/l10n.js"></script><script type="text/javascript" src="search/htmlFileInfoList.js"></script><script type="text/javascript" src="search/nwSearchFnt.js"></script><script type="text/javascript" src="search/stemmers/en_stemmer.js"><!--//make this scalable to other languages as well.--></script><script type="text/javascript" src="search/index-1.js"></script><script type="text/javascript" src="search/index-2.js"></script><script type="text/javascript" src="search/index-3.js"></script></head><body><div id="header"><a target="_blank" href="#"><img style="margin-right: 2px; height: 59px; padding-right: 25px; padding-top: 8px" align="right" src="../common/images/logo.png" alt=" Documentation"></img></a><h1>README: Web-based Help from DocBook XML<br></br>Using and customizing the output</h1><div id="navheader"><table class="navLinks"><tr><td><a id="showHideButton" href="javascript:showHideToc();" class="pointLeft" tabindex="5" title="Hide TOC tree">Sidebar
                            </a></td><td><a accesskey="p" class="navLinkPrevious" tabindex="5" href="ch02s02.html">Prev</a>
                                        |
                                        <a accesskey="u" class="navLinkUp" tabindex="5" href="ch02s02.html">Up</a>
                                    |
                                    <a accesskey="n" class="navLinkNext" tabindex="5" href="ch02s03.html">Next</a></td></tr></table></div></div><div id="content"><noscript>JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site.</noscript><div class="section"><div xmlns="" class="titlepage"><div><div><h3 xmlns="http://www.w3.org/1999/xhtml" class="title"><a id="id376463"></a>Recommended Apache configurations</h3></div></div></div>
<p>If you are serving a long document from an Apache web server, we recommend you make
          the following additions or changes to your <code class="filename">httpd.conf</code> or
            <code class="filename">.htaccess</code> file. <em><span class="remark">TODO: Explain what each thing
            does.</span></em></p><pre class="programlisting">AddDefaultCharSet UTF-8 # <a id="AddDefaultCharSet"></a><span><img src="../common/images/callouts/1.png" alt="1" border="0"></img></span>
  
      # 480 weeks
      &lt;FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$"&gt; # <a id="CachingSettings"></a><span><img src="../common/images/callouts/2.png" alt="2" border="0"></img></span>
      Header set Cache-Control "max-age=290304000, public"
      &lt;/FilesMatch&gt;
      
      # 2 DAYS
      &lt;FilesMatch "\.(xml|txt)$"&gt;
      Header set Cache-Control "max-age=172800, public, must-revalidate"
      &lt;/FilesMatch&gt;
      
      # 2 HOURS
      &lt;FilesMatch "\.(html|htm)$"&gt;
      Header set Cache-Control "max-age=7200, must-revalidate"
      &lt;/FilesMatch&gt;
      
      # compress text, html, javascript, css, xml:
      AddOutputFilterByType DEFLATE text/plain # <a id="CompressSetting"></a><span><img src="../common/images/callouts/3.png" alt="3" border="0"></img></span>
      AddOutputFilterByType DEFLATE text/html
      AddOutputFilterByType DEFLATE text/xml
      AddOutputFilterByType DEFLATE text/css
      AddOutputFilterByType DEFLATE application/xml
      AddOutputFilterByType DEFLATE application/xhtml+xml
      AddOutputFilterByType DEFLATE application/rss+xml
      AddOutputFilterByType DEFLATE application/javascript
      AddOutputFilterByType DEFLATE application/x-javascript
      
      # Or, compress certain file types by extension:
      &lt;Files *.html&gt; 
      SetOutputFilter DEFLATE
      &lt;/Files&gt;
      </pre><div class="calloutlist"><table border="0" summary="Callout list"><tr><td width="5%" valign="top" align="left"><p><a href="#AddDefaultCharSet"><span><img src="../common/images/callouts/1.png" alt="1" border="0"></img></span></a> </p></td><td valign="top" align="left"><p>See <a class="ulink" href="http://www.sagehill.net/docbookxsl/SpecialChars.html" target="_top">Odd
                  characters in HTML output</a> in Bob Stayton's book <em class="citetitle">DocBook XSL:
                  The Complete Guide</em> for more information about this setting.</p></td></tr><tr><td width="5%" valign="top" align="left"><p><a href="#CachingSettings"><span><img src="../common/images/callouts/2.png" alt="2" border="0"></img></span></a> </p></td><td valign="top" align="left"><p>These lines and those that follow cause the browser to cache various resources
                such as bitmaps and JavaScript files. Note that caching JavaScript files could cause
                your users to have stale search indexes if you update your document since the search
                index is stored in JavaScript files.</p></td></tr><tr><td width="5%" valign="top" align="left"><p><a href="#CompressSetting"><span><img src="../common/images/callouts/3.png" alt="3" border="0"></img></span></a> </p></td><td valign="top" align="left"><p>These lines cause the the server to compress html, css, and JavaScript files and
                the brower to uncompress them to improve download performance.</p></td></tr></table></div></div><script type="text/javascript" src="../common/main.js"></script><div class="navfooter"><hr></hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch02s02.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ch02s02.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ch02s03.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> </td></tr></table></div></div><div id="sidebar"><div id="leftnavigation" style="padding-top:3px;"><div id="tabs"><ul><li><a href="#treeDiv" style="outline:0;" tabindex="1"><span class="contentsTab">Contents</span></a></li><li><a href="#searchDiv" style="outline:0;" tabindex="1" onclick="doSearch()"><span class="searchTab">Search</span></a></li></ul><div id="treeDiv"><img src="../common/images/loading.gif" alt="loading table of contents..." id="tocLoading" style="display:block;"></img><div id="ulTreeDiv" style="display:none"><ul id="tree" class="filetree"><li><span class="file"><a href="ch01.html" tabindex="1">Introduction</a></span></li><li><span class="file"><a href="ch02.html" tabindex="1">Using the package</a></span><ul><li><span class="file"><a href="ch02s01.html" tabindex="1">Generating webhelp output</a></span></li><li><span class="file"><a href="ch02s02.html" tabindex="1">Using and customizing the output</a></span><ul><li id="webhelp-currentid"><span class="file"><a href="ch02s02s01.html" tabindex="1">Recommended Apache configurations</a></span></li></ul></li><li><span class="file"><a href="ch02s03.html" tabindex="1">Search indexing</a></span></li><li><span class="file"><a href="ch02s04.html" tabindex="1">Adding support for other (non-CJKV) languages</a></span></li><li><span class="file"><a href="ch02s05.html" tabindex="1">Adding images</a></span></li></ul></li><li><span class="file"><a href="ch03.html" tabindex="1">Developer Docs</a></span><ul><li><span class="file"><a href="ch03s01.html" tabindex="1">Design</a></span></li><li><span class="file"><a href="ch03s02.html" tabindex="1">Search</a></span><ul><li><span class="file"><a href="ch03s02s01.html" tabindex="1">New Stemmers</a></span></li></ul></li></ul></li><li><span class="file"><a href="ch04.html" tabindex="1">FAQ</a></span></li></ul></div></div><div id="searchDiv"><div id="search"><form onsubmit="Verifie(searchForm);return false" name="searchForm" class="searchForm"><fieldset class="searchFieldSet"><legend>Search</legend><center><input id="textToSearch" name="textToSearch" type="search" class="searchText" tabindex="1"></input> &nbsp; <input onclick="Verifie(searchForm)" type="button" class="searchButton" value="Go" id="doSearch" tabindex="1"></input></center></fieldset></form></div><div id="searchResults"><center></center></div><p class="searchHighlight"><a href="#" onclick="toggleHighlight()">Search Highlighter (On/Off)</a></p></div></div></div></div></body></html>
